# Copyright (c) 2019 Presto Labs Pte. Ltd.
# Author: jaewon

from deprecated import deprecated

from experimental.prophet.ops.constant import constant
from experimental.prophet.ops.placeholder import placeholder
from experimental.prophet.ops.control_flow import cond
from experimental.prophet.ops.elemwise_math import *
from experimental.prophet.ops.null import (null, is_null_op)
from experimental.prophet.ops.concat import concat
from experimental.prophet.ops.shared import (shared, assign)

# Global vars
from experimental.prophet.ops.globals import global_timestamp

# Aggregator
from experimental.prophet.ops.aggregator import scalar_value_aggregator

# Data/timepoint
from experimental.prophet.ops.dataframe_feeder import dataframe_feeder
from experimental.prophet.ops.timer import (timer, custom_timer)

# Timeseries
from experimental.prophet.ops.timeseries import (shift, time_shift, time_moving_window)

# Y-gen
from experimental.prophet.ops.y_gen import (shift_y, time_shift_y)

# Debug
from experimental.prophet.ops.debug import printer

# Fastfeed
from experimental.prophet.ops.fastfeed import fastfeed_coin
from experimental.prophet.ops.book import get_book_from_fastfeed as book  # e.g. prophet.book(feed)


@deprecated(reason="use prophet.book instead.")
def get_book_from_fastfeed(feed, **kwargs):
  return book(feed, **kwargs)


from experimental.prophet.ops.trade import get_trade_from_fastfeed as trade
from experimental.prophet.ops.instrument import get_instrument_from_fastfeed as instrument

# Legacy feature
from experimental.prophet.ops.proto_feed import proto_from_fastfeed
from experimental.prophet.ops.proto_feed_merge import merge_proto_feeds
from experimental.prophet.ops.legacy_feature import legacy_feature
from experimental.prophet.ops.legacy_sampler import legacy_sampler

# Order log
from experimental.prophet.ops.order_event import coin_order_event
